package com.xique.park.service.service;

import com.xique.park.bean.domain.BaseUser;

import java.util.List;

/**
 * 用户Service接口
 *
 * @author caogq
 * @date 2021-12-14
 */
public interface IBaseUserService {

    /**
     * 查询用户
     *
     * @param id 用户ID
     * @return 用户
     */
    BaseUser selectBaseUserById(Long id);

    /**
     * 查询用户列表
     *
     * @param baseUser 用户
     * @return 用户集合
     */
    List<BaseUser> selectBaseUserList(BaseUser baseUser);

    /**
     * 新增用户
     *
     * @param baseUser 用户
     * @return 结果
     */
    int insertBaseUser(BaseUser baseUser);

    /**
     * 修改用户
     *
     * @param baseUser 用户
     * @return 结果
     */
    int updateBaseUser(BaseUser baseUser);

    /**
     * 批量删除用户
     *
     * @param ids 需要删除的用户ID
     * @return 结果
     */
    int deleteBaseUserByIds(List<Long> ids);

    /**
     * 删除用户信息
     *
     * @param id 用户ID
     * @return 结果
     */
    int deleteBaseUserById(Long id);

    /**
     * 批量新增
     *
     * @param userList 用户列表
     */
    void batchAdd(List<BaseUser> userList);

    /**
     * 根据手机号查询
     *
     * @param phone 手机号
     * @return 用户信息
     */
    List<BaseUser> selectBaseUserByPhone(String phone);

    /**
     * @description: 根据停车小程序openId获取用户信息
     * @author: HdongSun
     * @date: 2022/8/25 17:00
     * @param: [openId]
     * @return: com.xique.park.bean.domain.BaseUser
     **/
    List<BaseUser> selectBaseUserByParkMiniOpenId(String openId);

    /**
     * 根据支付宝用户id查询
     * @param alipayUserId
     * @return
     */
    List<BaseUser> selectBaseUserByAlipayUserId(String alipayUserId);

    List<BaseUser> selectBaseUserByParkMiniOpenIdAndPhone(String openId,String phone);
    List<BaseUser> selectBaseUserByAliPayUserIdAndPhone(String aliPayUserId,String phone);
}
